package com.ruoyi.jl_base.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 合同主业务对象 jl_base_bs_contract
 *
 * @author zyb
 * @date 2024-12-23
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class JlBaseBsContractBo extends BaseEntity {

    /**
     * 主键
     */
    private Long contractId;

    /**
     * 所属试验室id
     */
    private Long deptId;

    /**
     * 所属项目id
     */
    @NotNull(message = "所属项目id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long projectId;

    /**
     * 所属标段id
     */
    @NotNull(message = "所属标段id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long bdId;

    /**
     * 合同号
     */
    @NotBlank(message = "合同号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String contractNo;

    /**
     * 施工单位id
     */
    private Long sgdwId;

    /**
     * 监理单位id
     */
    private Long jldwId;

    /**
     * 建设单位id
     */
    private Long jsdwId;

    /**
     * 是否允许修改flag
     */
    private Integer updateFlag;

    /**
     * 审核状态
     */
    private String approveFlag;

    /**
     * 是否允许负计量
     */
    private Integer fjlFlag;

    /**
     * 开工日期
     */
    private Date beginDate;

    /**
     * 竣工日期
     */
    private Date endDate;

    /**
     * 合同总价金额
     */
    private BigDecimal contractMoney;

    /**
     * 合同清单总价金额
     */
    private BigDecimal contractSheetTotalMoney;

    /**
     * 开工预付款金额
     */
    private BigDecimal kgyfkMoney;

    /**
     * 材料预付款金额
     */
    private BigDecimal clyfkMoney;

    /**
     * 暂列金金额
     */
    private BigDecimal zljMoney;

    /**
     * 质保金金额
     */
    private BigDecimal zbjMoney;

    /**
     * 计日工金额
     */
    private BigDecimal jrgMoney;

    /**
     * 起讫桩号
     */
    private String qqzh;

    /**
     * 标段长度(KM)
     */
    private BigDecimal bdLen;

    /**
     * 开工预付款起扣比例(%)
     */
    private Long kgyfkQkbl;

    /**
     * 开工预付款截止比例(%)
     */
    private Long kgyfkJzbl;

    /**
     * 质保金扣款比例(%)
     */
    private Long zbjKkbl;

    /**
     * 农民工工资保证金扣款比例(%)
     */
    private Long nmggzbzjKkbl;

    /**
     * 开工预付款支付情况
     */
    private String kgyfkZfqk;

    /**
     * 开工预付款扣回规定
     */
    private String kgyfkKhgd;

    /**
     * 材料预付款支付情况
     */
    private String clyfkZfqk;

    /**
     * 材料预付款扣回规定
     */
    private String clyfkKhgd;

    /**
     * 合同已经计量金额(实时计算)
     */
    private BigDecimal contractHavaJlMoney;
    /**
     * 合同已结算金额(实时计算)
     */
    private BigDecimal contractHavaSettleMoney;
    /**
     * 合同已支付金额(实时计算)
     */
    private BigDecimal contractHavaPayMoney;


}
